<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Пульт</title>
    <style>
        #header {
            background-color:black;
            color:white;
            text-align:center;
            padding:5px;
        }
        #content {
            float:left;
            padding:10px; 
        }
    </style>
</head>

<body>
    <div id="header">
        <h1>Пульт</h1>
    </div>


    <div id="content">
        <p>Один из каналов RS485 в контроллерах может быть задействован для подключения символьного пульта. Формат пульта - 4 строки по 20 символов. Для вывода информации могут быть задействованы символы латиницы, кириллицы, цифры, знаки пунктуации и ряд спецсимволов.</p>
        <p>Для каждой строки в редакторе пульта задаётся набор видов. Программа контроллера в свою очередь управляет какой именно вид должен быть активен в данный момент времени. Управление происходит через переменные <span style="color:darkred">st1</span>, <span style="color:darkred">st2</span>, <span style="color:darkred">st3</span> и <span style="color:darkred">st4</span>, которые задают номер вида для строки (st1 для первой, st2 для второй и т.д.).</p>
        <p>В строках помимо текстовой информации могут содержаться переменные. Они могут быть доступны только для отображения или допускать возможность изменения с пульта. Таким образом пульт может использоваться не только как индикатор, но и для настройки режимов работы контроллера.</p>
        <p>Немного особняком от остальных стоит четвёртая строка пульта. Если программа не управляет её состоянием (номером вида) то с помощью кнопок "влево" и "вправо" можно пролистывать все виды строки. В таком режиме её удобно использоавать для ввода пользователем настроек.</p>
        <p>Ниже представлен внешний вид редактора пульта.</p>
        <p><img src="images/pult_review.png" alt="Пульт"></p>
        <p>В левом верхнем углу расположено поле для ввода текста и вставки переменных. Под ним находятся списки всех видов строк от первой до четвёртой в порядке слева направо. В правой части размещено дерево всех переменных проекта и поля для конфигурирования переменных пульта.</p>
        <p>Курсор в редакторе указывает на текущую позицию для ввода символа. Нажатие клавиши "Enter" приводит к добавлению пустой строки ниже текущей. Переключаться между видами строк можно с помощью мыши, щёлкнув по необходимой строке в списке видов или с помощью горячих клавиш (Page Up - переключиться на предыдущий вид, Page Down - переключиться на следующий вид). В списках строк по щелчку правой кнопкой мыши доступно контекстное меню.</p>
        <p><img src="images/pult_context.png" alt="Контекстное меню списка строк" style="margin:5px"></p>
        <p>Каждый вид в строке можно временно отключить. Программа в этом случае будет вести себя так как будто его просто не существует, а сам вид в списке будет выводиться серым цветом. Помимо этого в контекстном меню доступны операции вставки пустой строки до или после текущего вида, копирования строки в буфер, вставки строки из буфера, удаления строки.</p>
        <p>Для удобства работы также предусмотрен ряд горячих клавиш.
            <li>Home - перейти на начало текущего вида</li>
            <li>End - перейти на конец текущего вида</li>
            <li>Page Up - перейти к предыдущему виду строки</li>
            <li>Page Down - перейти к следующему виду строки</li>
            <li>Shift+Delete - удалить текущий вид в строке</li>
            <li>Insert - изменение режима ввода (вставка/замена)</li>
            <li>Ctrl+C - копировать выделение или всю строку(если выделение отсутствует) в буфер</li>
            <li>Ctrl+V - если была скопирована вся строка, а не фрагмент, то добавить вид перед текущим и вставить в него содержимое скопированной строки. В противном случае просто вставка скопированного фрагмента, начиная с позиции курсора.</li>
            <li>Ctrl+X - вырезать текущую строку в буфер</li>
            <li>Ctrl+Q - сделать текущий вид в строке неактивным и перейти к следующему виду</li>
            <li>Ctrl+W - сделать текущий вид в строке активным и перейти к следующему виду</li>
            <li>Ctrl+Z - отменить предыдущую операцию</li>
            <li>Ctrl+Y - повторить отменённую операцию</li>
        </p>
        <p>Кроме ввода символов с клавиатуры возможна вставка спецсимволов через контекстное меню (по правой кнопке мыши) редактора.</p>
        <p><img src="images/pult_spec_symb.png" alt="Спец символы" style="margin:5px"></p>
        <h3>Работа с переменными</h3>
        <p>Для ввода переменной необходимо установить курсор в требуемую позицию, выбрать двойным щелчком мыши необходимую переменную в дереве проекта, ввести "шаблон" переменной и при необходимости установить флаги принудительной знаковости, разрешения редактирования, комментарий к переменной (назначение этих настроек будет описано ниже). После этого нажать кнопку "Добавить переменную". В результате в строку будет добавлена переменная (при условии наличия свободного места в строке). Отображается переменная текстом шаблона. При наведении курсора редактора на переменную в соответствующих полях отображаются её настройки, а сама переменная подсвечивается зелёным цветом. В противном случае переменная выводится синим цветом.</p>
        <p>Шаблон задаёт формат вывода переменной (количество знакомест и расположение точки). Например, предположим, что в программе контроллера имеется некая переменная типа unsigned char, т.е. она может принимать значения от 0 до 255. Пусть для её вывода используется шаблон "10.0", а сама переменная имеет значение 123. На пульте в таком случае будет выведено значение "12.3". Шаблоном может быть любое число, соответствующее типу переменной (например для однобайтной переменной нельзя использовать шаблоны "300" или "25.6", т.к. её максимальное значение 255).</p>
        <p>Если предполагается, что у пользователя должна быть возможность редактирования переменной с пульта, то необходимо установить флаг "разрешить изменение с пульта". Комментарий к переменной не влияет на работу пульта и служит лишь для заметок программиста. Принудительная знаковость позволяет выводить беззнаковые переменные так, как если бы они были знаковыми. Это может быть удобно при выводе заводских установок для отрицательных величин (по умолчанию заводские установки (переменные EE) не могут принимать отрицательные значения).</p>
        <p>Нажатие клавиши "Delete" при курсоре редактора, расположенном внутри переменной, приведёт к её удалению.</p>
        <p>Для изменения настроек переменной необходимо установить на неё курсор редактора и поменять настройки в соответствующих полях (или поменять саму переменную двойным щелчком по новой переменной в дереве проекта). После чего нажать кнопку "Изменить переменную". Если кнопка не будет нажата, то сделанные изменения не будут применены к переменной.</p>
    </div>
</body>